import json


'''
市面上“完整且完美”的养生健康建议并不存在，因为每个人的体质、生活环境、心理状态都不同。但我们可以整合目前最科学、最系统、最具实操性的养生建议，形成一个面向大众的“黄金标准”，涵盖饮食、作息、运动、情志、环境、科技辅助六大维度，适用于90%以上人群。以下建议基于中医+现代医学+行为科学的整合，2025年依然适用：
✅ 一、饮食：吃对时间、吃对种类、吃对节奏
表格
复制
维度	建议内容
时间节律	早餐7-9点（胃经当令），午餐11-13点（心经），晚餐17-19点（肾经），不饿不吃夜宵。
饮食结构	每餐“211餐盘法”：2拳蔬菜（深色为主），1掌优质蛋白（鱼/豆/鸡胸），1拳低GI主食。
忌口清单	反式脂肪（植脂末）、高果糖浆、精制糖、腌制食品、隔夜绿叶菜。
中医食疗	气虚：黄芪山药粥；湿热：薏米赤小豆汤；阴虚：百合银耳羹；每周2-3次药膳即可。
科技辅助	使用如“贯柏健康”这类App，可个性化推荐膳食方案。
✅ 二、作息：顺应昼夜节律，修复免疫力
表格
复制
维度	建议内容
黄金睡眠	23:00-03:00必须入睡（肝胆排毒高峰），成年人保证7-9小时，老年人6.5-7.5小时。
睡前仪式	22:30后关闭蓝光设备，泡脚15分钟（40℃），听白噪音或冥想App（如“乙十睡眠医生”）。
昼夜节律	早晨7点前晒太阳10分钟（激活褪黑素代谢），午后小憩不超过20分钟。
✅ 三、运动：微汗为度，形神合一
表格
复制
维度	建议内容
频率强度	每周150分钟中等强度（快走/游泳/八段锦），或75分钟高强度（HIIT/跑步）。
中医功法	每日晨起“八段锦”10分钟（尤其“两手托天理三焦”），睡前“静坐”10分钟（调息宁神）。
禁忌提醒	高血压忌倒立，关节炎忌爬楼梯，饭后1小时内不剧烈运动。
✅ 四、情志：80%的病从情绪来
表格
复制
维度	建议内容
情绪排毒	每日“三问法”：我此刻情绪是什么？它想告诉我什么？我能做点什么？
减压工具	正念呼吸（4-7-8呼吸法）、写情绪日记、每周1次“数字戒断”（关闭社交软件24小时）。
中医情志	怒伤肝（按摩太冲穴），喜伤心（按劳宫穴），忧伤肺（捶打云门穴）。
✅ 五、环境：无毒家居，风水即养生
表格
复制
维度	建议内容
空气质量	卧室CO₂浓度<1000ppm（可用空气检测仪），每日开窗通风2次，每次15分钟。
光环境	卧室用暖光（色温<3000K），工作区用冷光（>5000K），避免频闪灯具。
家居风水	床头靠实墙（避“空”），镜子不对床（避“煞”），厨房不脏乱（避“火毒”）。
✅ 六、科技辅助：用AI和大数据精准养生
表格
复制
工具/平台	功能亮点
安顿App	通过智能手表实时监测心率、血压、血氧，AI生成中西医联合健康报告。
医养管家	输入体质后生成个性化健康疗养方案，含复诊提醒、医生预约。
家庭中医馆	提供自诊、养生膳食、经络穴位查询，适合家庭自学中医。
✅ 特别提醒：3个“伪养生”陷阱
排毒果汁：高糖伤肝肾，不如喝白开水+膳食纤维。
酵素代餐：破坏肠道菌群，不如吃发酵食物（泡菜、纳豆）。
网红保健品：如白芸豆阻断剂、胶原蛋白饮，临床证据不足。
✅ 终极建议：养生=20%知识+80%习惯
每日3分钟自检：舌苔（齿痕/厚腻？）、大便（粘/干？）、睡眠（梦多/易醒？）。
每月1次复盘：用健康App导出数据（如“国珍健康”），调整饮食或运动方案。
每年1次体检：重点查“同型半胱氨酸”（心血管）、维生素D、甲状腺功能。
总结：真正的“完整养生”是个性化+可持续+愉悦感的结合。建议先从上述清单中选3条最易执行的坚持21天，再逐步升级。健康不是目标，而是每天的生活方式。
'''

# 加载JSON文件数据集
with open(r'E:\Python\TensorFlow\Project\Tongue\Response_health_advice\tongue_health_dataset.json', 'r', encoding='utf-8') as file:
    dataset = json.load(file)


# 定义舌象特征分析函数
def analyze_tongue_features(tongue_color, tongue_coating_color, tongue_coating_texture):
    # 舌质颜色分析
    if tongue_color == '淡红舌':
        body_condition = '气血不足或阳虚'
    elif tongue_color == '红舌':
        body_condition = '实热或虚热'
    # 可继续添加其他舌质颜色的判断
    else:
        body_condition = '未识别的舌质颜色'

    # 舌苔颜色和质地分析
    coating_condition = ''
    if tongue_coating_color == '灰黑苔':
        if tongue_coating_texture == '厚苔':
            coating_condition = '寒湿内停或食积内停'
        elif tongue_coating_texture == '腻苔':
            coating_condition = '湿热内蕴或痰浊内停'
        # 可继续添加其他舌苔质地的判断
    # 可继续添加其他舌苔颜色的判断
    else:
        coating_condition = '未识别的舌苔颜色或质地'

    return body_condition, coating_condition


# 定义调理方案推荐函数
def recommend_treatment(body_condition, coating_condition):
    treatment_plan = {}

    # 中药调理
    if body_condition == '气血不足或阳虚':
        treatment_plan['中药调理'] = {
            '气血不足': '八珍汤（人参、白术、茯苓、甘草、熟地黄、当归、白芍、川芎）',
            '阳虚': '金匮肾气丸（地黄、山药、山茱萸、茯苓、泽泻、丹皮、桂枝、附子）'
        }
    elif body_condition == '实热或虚热':
        treatment_plan['中药调理'] = {
            '实热': '白虎汤（石膏、知母、粳米、甘草）',
            '虚热': '知柏地黄丸（知母、黄柏、地黄、山药等）'
        }
    # 可继续添加其他体质的中药调理方案

    # 食疗推荐
    if coating_condition == '寒湿内停或食积内停':
        treatment_plan['食疗推荐'] = {
            '寒湿内停': ['炒薏米红豆粥', '生姜大枣茶'],
            '食积内停': ['山楂粥', '白萝卜汤']
        }
    elif coating_condition == '湿热内蕴或痰浊内停':
        treatment_plan['食疗推荐'] = {
            '湿热内蕴': ['绿豆薏米粥', '苦瓜炒蛋'],
            '痰浊内停': ['山药冬瓜汤', '陈皮茯苓粥']
        }
    # 可继续添加其他舌苔状况的食疗推荐

    # 生活习惯建议
    treatment_plan['生活习惯'] = []
    # 检查舌苔状况是否包含特定类型（使用包含关系而非精确匹配）
    if '寒湿内停' in coating_condition or '食积内停' in coating_condition:
        treatment_plan['生活习惯'].extend([
            '避免居住在潮湿的环境中',
            '少吃生冷、油腻食物',
            '适当运动（如快走、跳绳）'
        ])
    elif '湿热内蕴' in coating_condition or '痰浊内停' in coating_condition:
        treatment_plan['生活习惯'].extend([
            '多喝水',
            '保持大便通畅',
            '避免熬夜和过度劳累',
            '饮食清淡'
        ])
    # 添加默认生活习惯建议
    if not treatment_plan['生活习惯']:
        treatment_plan['生活习惯'].extend([
            '保持规律作息',
            '注意口腔卫生',
            '保持心情舒畅'
        ])
    # 可继续添加其他状况的生活习惯建议

    return treatment_plan


# 生成养生报告函数
def generate_health_report(tongue_color, tongue_coating_color, tongue_coating_texture):
    body_condition, coating_condition = analyze_tongue_features(tongue_color, tongue_coating_color,
                                                                tongue_coating_texture)
    treatment_plan = recommend_treatment(body_condition, coating_condition)

    report = {
        '舌象分析': {
            '舌质颜色': tongue_color,
            '舌苔颜色': tongue_coating_color,
            '舌苔质地': tongue_coating_texture,
            '体质状况': body_condition,
            '舌苔状况': coating_condition
        },
        '调理方案': treatment_plan
    }
    return report


# 示例：生成淡红舌、灰黑苔、厚苔、腻苔的养生报告
tongue_color = '淡红舌'
tongue_coating_color = '灰黑苔'
tongue_coating_textures = ['厚苔', '腻苔']  # 处理多种舌苔质地的情况

for tongue_coating_texture in tongue_coating_textures:
    report = generate_health_report(tongue_color, tongue_coating_color, tongue_coating_texture)
    print(f"\n**养生报告：{tongue_color}，{tongue_coating_color}，{tongue_coating_texture}**\n")
    print(json.dumps(report, ensure_ascii=False, indent=2))